//
//  NSString+Print.h
//  Saas
//
//  Created by 杨荣 on 2020/6/3.
//  Copyright © 2020 bing. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

typedef enum : NSUInteger {
    NSStringFontSmall,  // 小
    NSStringFontMiddle, // 中
    NSStringFontBig,    // 大
}NSStringFont;// 打印字体大小

@interface NSString (Print)

/**
 构造一条打印数据
 
 @param textInfoArray 多条打印数据集合（每条格式中key是text，value是打印的起始位置，单位是字节数）
 @param font 字体大小
 @return 打印数据
 */
+ (NSString *)getPrintTextWithTextInfoArray:(NSArray <NSDictionary *>*)textInfoArray font:(NSStringFont)font;

/**
 获取一个打印字符串字节长度
 
 @param text 字符串
 @param font 大小
 @return 一个打印字符串字节长度
 */
+ (NSInteger)getPrintTextByteTotalWithText:(NSString *)text font:(NSStringFont)font;


/**
 获取有效位字符串（去除小数点后多余的0）
 
 @return 有效位字符串 比如9.00 -> 9
 */
- (NSString *)getEffectivePointString;



/**
 根据最大字节宽度，截取到最大显示字符串
 
 @param byteWidthMax 最大字节宽度
 @param font 字体大小
 @return 截取后的字符串
 */
- (NSString *)getSubStringWithByteWidthMax:(NSInteger)byteWidthMax font:(NSStringFont)font;



- (NSDictionary *)characterStatistics;// 字符串中各类字符个数统计
- (NSInteger)characterCountForChinese;// 中文字符个数
- (NSInteger)characterCountForUpperEnglish;// 大写字母个数
- (NSInteger)characterCountForLowerEnglish;// 小写字母个数
- (NSInteger)characterCountForNumber;// 数字个数
- (NSInteger)characterCountForOther;// 其它字符个数





// 获取打印的分割线字符串
+ (NSString *)getPrintPartingLineWithByteWidth:(NSInteger)byteWidth originX:(NSInteger)originX;
// 获取打印的字符串（左右布局）
+ (NSString *)getPrintTextWithLeftText:(NSString *)leftText rightText:(NSString *)rightText byteWidth:(NSInteger)byteWidth;

@end

NS_ASSUME_NONNULL_END
